#!/usr/bin/env python3
# -*- coding: utf-8 -*-
__author__ = '汤小洋'

'''
set集合
'''
# 定义set，使用{}大括号
# s = {12, 4, 23, 5}
s = set([13, 6, 25, 39, 4, 6, 13])  # 使用set()函数将list变为set，去除重复值
print(s)
print(type(s))

# 添加
s.add(38)
s.add(25)

# 删除
# s.remove(1)

# 清空
# s.clear()

print(s)

# 遍历
for i in s:
    print(i, end=' ')

print('*' * 80)

'''
字典dict
'''
# 定义dict，也使用大括号{}，每个元素由键和值共同组成。类似于javascript中的json
d = {'tom': 97, 'jack': 100, 'mike': 68}
print(d)
print(type(d))

# 获取，根据键获取值
# print(d['aaa'])  # 如果键不存在，会报错
print(d.get('aaa'))  # 如果键不存在，则返回None（获取值时推荐使用该方式）
print(d.get('lucy', '不存在'))  # 如果键存在则返回对应的值，如果键不存在则返回第二个参数所指定的默认值

# 添加/修改
d['alice'] = 80
d['tom'] = 66

# 删除（弹出）
print(d.pop('tom'))

# 使用del关键字删除
del d['jack']


# 清空
# d.clear()

# 判断是否存在指定的key
print('jack' in d)


# 遍历
print(d.keys())
print(list(d.keys()))  # 将dict_keys转换为list类型
print(d.values())
print(d.items())

for k in d.keys():
    # print(k, d.get(k))
    print(f'{k}={d.get(k)}')

for v in d.values():
    print(v)

for k, v in d.items():
    print(k, v)


# 创建一个空字典，两种方法
dc = {}
dc = dict()

# 获取字典中元素个数
dc = {2: 'aaa', 7: 'bbb', 4: 'ccc'}
print(len(d))

# 获取字典中键key的最大值/最小值
print(max(dc))
print(min(dc))

'''
练习：
定义一个list，通过dict存储学生信息
'''
students = [
    {'id': 1001, 'name': 'mike', 'age': 18, 'sex': 'male'},
    {'id': 1002, 'name': 'jack', 'age': 20, 'sex': 'male'},
    {'id': 1003, 'name': 'alice', 'age': 19, 'sex': 'female'}
]

print('编号\t\t姓名\t\t年龄\t\t性别')
for student in students:
    print(f'{student["id"]}\t{student["name"]}\t{student["age"]}\t{student["sex"]}')
